package com.gopay.common.security.cacert.dao;

import java.io.Serializable;
import java.util.List;

import com.gopay.common.base.dao.BaseReadDAO;
import com.gopay.common.domain.cust.CustCaCert;

/**
 * 客户证书查询dao.
 * @CustCaCertQueryDao.java
 * @author dongdh
 * @2016年2月15日 下午2:37:25  www.gopay.com.cn Inc.All rights reserved.
 */
public interface CustCaCertQueryDao extends BaseReadDAO<CustCaCert, Serializable> {

    /**
     * 根据客户id查询客户证书数据.
     * @param custId
     * @return
     */
    CustCaCert getCustCaCertByCustId(String custId);
    /**
     * 获取过期的数字证书
     * @return
     */
    public List<CustCaCert> getLimitCustCaCert();

    /**
     * 根据客户id，用户id查询证书
     * @param custId
     * @param userId
     * @return
     */
    CustCaCert getCustCaCertByCidAndUid(String custId, String userId);

    /**
     * 根据证书主键获取证书信息
     * @param certId
     * @return
     * zhoutong
     */
	public CustCaCert getCustCaCertById(Serializable certId);
	
	/**
	 * 根据userId和证书状态查询证书列表
	 * @param userId
	 * @param stat
	 * @return
	 * zhoutong
	 */
	public List<CustCaCert> getCustCaCertListByUserId(String userId, String stat);

	/**
	 * 获取需要被更新的证书列表
	 * @param userId
     * @return
     */
	public List<CustCaCert> getNeedUpdateCustCaCert(String userId);

	/**
	 * 根据用户ID和序列号获取证书
	 * @param userId
	 * @param sn
	 * @return
	 * fanghw
	 */
	public CustCaCert getByUserIdAndSN(String userId, String sn);
}
